/*
 * Filename    : State_Menu_Daerah.java
 * Projectname : Sound Of Indonesia
 * Date        : Nov 1, 2012 , 1:10:14 PM 
 * 
 * PratamaNurWijaya
 */

package id.pratama.soundofindonesia.state;

import id.pratama.soundofindonesia.Utils;

import org.andengine.entity.modifier.MoveXModifier;
import org.andengine.entity.scene.Scene;
import org.andengine.entity.sprite.Sprite;
import org.andengine.input.touch.TouchEvent;
import org.andengine.input.touch.detector.ClickDetector;
import org.andengine.input.touch.detector.ScrollDetector;

import android.view.KeyEvent;

public class State_Menu_Daerah extends State_Menu_Alat_Musik
{

	private final float	DURATION	= 0.3f;
	private float		centerX;

	protected void createMenuDaerah()
	{
		grafik.attachMenuDaerah();
		// menuItem = 0;
	}

	@Override
	public boolean onKeyUp(int keyCode, KeyEvent event)
	{
		if (State_Menu_Current == STATE_MENU_DAERAH)
		{
			if (keyCode == KeyEvent.KEYCODE_BACK)
			{
				grafik.detachMenuDaerah();
				switchState(STATE_MENU_MAIN);
			}
		}
		return super.onKeyUp(keyCode, event);
	}

	@Override
	public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent)
	{

		if (State_Menu_Current == STATE_MENU_DAERAH)
		{
			m_Click.onTouchEvent(pSceneTouchEvent);
			m_Scroll.onTouchEvent(pSceneTouchEvent);
		}
		return super.onSceneTouchEvent(pScene, pSceneTouchEvent);
	}

	@Override
	public void onClick(ClickDetector pClickDetector, int pPointerID, float pSceneX, float pSceneY)
	{
		if (State_Menu_Current == STATE_MENU_DAERAH)
		{
			for (int i = 0; i < MENU_DAERAH.length; i++)
			{
				if (Utils.isOnArea(pSceneX, pSceneY, grafik.spr_Menu_Daerah[i]))
				{
					Utils.TRACE("klik :" + i);
				}
			}

		}
		super.onClick(pClickDetector, pPointerID, pSceneX, pSceneY);
	}

	@Override
	public void onScrollStarted(ScrollDetector pScollDetector, int pPointerID, float pDistanceX, float pDistanceY)
	{
		if (State_Menu_Current == STATE_MENU_DAERAH)
		{
			Utils.TRACE("scroll starteeeddd");

		}
		super.onScrollStarted(pScollDetector, pPointerID, pDistanceX, pDistanceY);
	}

	@Override
	public void onScroll(ScrollDetector pScollDetector, int pPointerID, float pDistanceX, float pDistanceY)
	{
		if (State_Menu_Current == STATE_MENU_DAERAH)
		{
			for (int i = 0; i < MENU_DAERAH.length; i++)
			{
				grafik.spr_Menu_Daerah[i].setPosition(grafik.spr_Menu_Daerah[i].getX() + pDistanceX,
						grafik.spr_Menu_Daerah[i].getY());

			}

		}
		super.onScroll(pScollDetector, pPointerID, pDistanceX, pDistanceY);
	}

	@Override
	public void onScrollFinished(ScrollDetector pScollDetector, int pPointerID, float pDistanceX, float pDistanceY)
	{

		if (State_Menu_Current == STATE_MENU_DAERAH)
		{

			// if (grafik.spr_Menu_Daerah[0].getX() > RES_WIDTH)
			// {
			// grafik.spr_Menu_Daerah[0].registerEntityModifier(new
			// MoveXModifier(DURATION, grafik.spr_Menu_Daerah[0]
			// .getX(), getCenterX(grafik.spr_Menu_Daerah[0])));
			//
			// for (int i = 1; i < MENU_DAERAH.length; i++)
			// {
			// for (int j = 1; j <= i; j++)
			// {
			// grafik.spr_Menu_Daerah[i].registerEntityModifier(new
			// MoveXModifier(DURATION,
			// grafik.spr_Menu_Daerah[i].getX(), grafik.spr_Menu_Daerah[i -
			// 1].getX()
			// + (j * Utils.getRatio(160))));
			// }
			// }
			//
			// } else if (grafik.spr_Menu_Daerah[MENU_DAERAH.length - 1].getX()
			// < 0)
			// {
			// grafik.spr_Menu_Daerah[MENU_DAERAH.length -
			// 1].registerEntityModifier(new MoveXModifier(DURATION,
			// grafik.spr_Menu_Daerah[MENU_DAERAH.length - 1].getX(),
			// getCenterX(grafik.spr_Menu_Daerah[MENU_DAERAH.length - 1])));
			// } else
			// {
			// for (int i = 1; i <= MENU_DAERAH.length; i++)
			// {
			// // grafik.spr_Menu_Daerah[i].registerEntityModifier(new
			// // MoveXModifier(DURATION, grafik.spr_Menu_Daerah[i].getX(),
			// // ))
			// }
			//
			// }

		}

		super.onScrollFinished(pScollDetector, pPointerID, pDistanceX, pDistanceY);
	}

	private float getCenterX(Sprite spr)
	{
		centerX = (RES_WIDTH / 2) - (spr.getWidth() / 2);

		return centerX;
	}
}
